<?php

namespace App\Models;

use DateTimeInterface;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\Carbon;

/**
 * 分类目录模板 由很多分类构成
 * Class ClassifyTemplate
 *
 * @package App\Models
 * @property int $id 分类模板 主键id
 * @property string|null $title 分类模板标题
 * @property int|null $company_id 公司id
 * @property int|null $sort 排序
 * @property Carbon|null $created_at 创建时间
 * @property Carbon|null $updated_at 编辑时间
 * @property int|null $deleted_at 软删除unix时间戳
 * @property int|null $creator_id 模板创建者
 */
class ClassifyTemplate extends Model
{
    use SoftDeletes;

    //表名
    protected $table = 'classify_templates';

    //不可批量赋值
    protected $guarded = ['id'];

    //在toJson的时候会隐藏的字段 查询列表默认也会隐藏的字段
    protected $hidden = [];

    protected function serializeDate(DateTimeInterface $date)
    {
        return $date->format('Y-m-d H:i:s');
    }

    /**
     * 关联关系 1:N 检索配过 某个分类目录模板 的项目
     * @return HasMany
     */
    function projects(): HasMany
    {
        return $this->hasMany(Project::class);
    }

    /**
     * 关联关系 1:N 检索分类模板的分类目录
     * @return HasMany
     */
    function classifies(): HasMany
    {
        return $this->hasMany(Classify::class);
    }
}
